1. Technical Field
This application relates to the field of storing data, and more particularly to the field of providing services in connection with data storage.
2. Description of Related Art
Snapshots are used in storage systems to record contents of storage objects at a given moment in time. Snapshots are useful for many reasons, including data protection, as self-consistent data sets to be processed by applications (e.g. data mining, offline trend analysis), etc.
Various types of snapshots include device- (or storage-subsystem-) based, filesystem-based, and namespace-based. Finer granularity of snapshots allows for differentiation between object sets with different properties and applying customized snapshot policies per object set. For example, it may be desirable to provide more frequent snapshot images of data objects having a particular characteristic or set of characteristics.
Currently, the snapshots with finest granularity are directory (namespace) based, meaning that it is possible to define a policy for snapshots over a namespace sub-tree. However, it is not always possible to organize application data in the namespace according to the desired snapshot policies. Other considerations, such as logical data organization, might impose the namespace structure that is orthogonal to the desired ways of organizing objects for snapshots. This leads to suboptimal application of fine grain snapshots, with potentially increased system resource consumption (storage space, network and I/O bandwidth, and CPU time).
Accordingly, it is desirable to provide a system that addresses the shortcomings of conventional snapshot operations set forth above.